# def func():
#     print("大麻花")
#     yield "11"
#     print("狗不理哦")
#     yield "22"
#     print("八宝粥")
#     yield "33"


#  __next__ 可以让生成器向下执行一次
#  seng() 也可以让生成器向下执行一次 给上一个yield传一个值,第一个不能用send(),最后一个也不能传值

# g = func()
#
# print(g.__next__())
# print(g.send(1))


# def eat():
#     print("我吃什么呀")
#     a = yield "馒头"
#     print("a = ", a)
#     b = yield "大饼"
#     print("b = ", b)
#     c = yield "韭菜盒子"
#     print("c = ", c)
#     yield "Game Over"
#
#
# # 获取生成器
# e = eat()
# res = e.__next__()
# print(res)
#
# res1 = e.send("胡辣汤")
# print(res1)
#
# res2 = e.send("狗粮")
# print(res2)
#
# res3 = e.send("猫粮")
# print(res3)


def func():
    yield 11
    yield 22
    yield 33
    yield 44


g = func()
lst = list(g)  # 可迭代对象
print(lst)

"""
send 和 next 的区别
    send 和 next 都是让生成器向下走一次
    send 可以给上一个yield的位置传递值,不能给最后一个yield发送值,在第一次执行生成器代码的时候不能使用send().
"""